XML Paper Specification (XPS) defines a data format that is built on top of Open Packaging Convention (OPC) files, which in turn is built on top of a ZIP architecture. Each of the layers—the XPS layer, the OPC layer, and the ZIP layer, can have its own characteristics and tools.
A user may desire to search for a specific type of XPS or OPC file. Typically, there are two options for the user—extract and inspect the file manually or create their own tool to do so. Manual analysis involves opening an XPS file as a ZIP file and manually inspecting the contents. Generally, manual processes can generate a high error rate. Additionally, the analysis keeps repeating over and over again for every single file. However, a user who has thorough understanding of XPS or ZIP can perform the manual analysis himself.
Alternatively, a user can create an analysis tool using an XPS or OPC Software Development Kit (SDK) to do the searching or analysis. However, that complicates the process because the tool can be expensive to create in terms of man hours used to develop the tool. Further, the user typically has to have a full understanding of the XPS or OPC SDK in order to develop and use the tool. Additionally, the user may have to create a different tool for each of the user's own purposes. For example, assume that a user wants to find a discard control. In this case, the user might create a tool in order to find the discard control. Assume further that the very next day the user desires to find a particular font. The user will then have to create an entirely new tool to find such font. This can be very expensive and time consuming.